const fs = require('fs');
const zlib = require('zlib');
const path = require('path');
 
function gzip($src) {
    fs.stat($src, function (err, stats) {
        if (stats.isFile()) {
            let rs = fs.createReadStream($src);
            //zlib.createGzip()创建一个gzip转换流，是一个可读可写流。
            //通过管道将数据读取出来写入gzip流，然后又通过管道写入一个文件流中
            $dst = path.join(__dirname, path.basename($src) + '.gz');
            rs.pipe(zlib.createGzip()).pipe(fs.createWriteStream($dst));
        }
    });
}
 
function ungzip($src) {
    fs.stat($src, function (err, stats) {
        if (stats.isFile()) {
            let rs = fs.createReadStream($src);
            //zlib.createGunzip()创建一个gunzip转换流
            $dst = path.join(__dirname, path.basename($src, '.gz'));
            rs.pipe(zlib.createGunzip()).pipe(fs.createWriteStream($dst));
        }
    });
}
 
//压缩文件
gzip('../test01.txt');
//解压文件
// ungzip('./1.txt.gz');